#pragma once

#include <string>
#include <sstream>
#include <curl/curl.h>
#include <mymutex.hxx>

#include "decaptcherfactory.hxx"

using namespace std;

/**************************************************
** Singleton because statstics will be collected
**************************************************/
static const DecaptcherType ExpertdeCoders = 1 << 0;

class Decaptcher
{
public:
	
	static Decaptcher* Instance(void);
	
	virtual int Decode(string path, string& result);
	virtual int Refund(int genId, string& errmsg);

protected:

	/* Disallow constructors. */
	Decaptcher(){}
	Decaptcher(const Decaptcher& model){}

	static string DecDomain;
	static string Key;
};